package com.hll.mapper;

import com.hll.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: Mr.Hu
 * @create: 2021-03-10 18:52
 */
public interface UserMapper {
  /**
   * 和登入用户code+password
   *
   * @return: User
   */
  User getLoginUser(@Param("userCode") String userCode, @Param("pwd") String pwd);

  /**
   * 更新密码,用户id 和 新密码 newPwd
   *
   * @return: 影响行数
   */
  int updatePwd(@Param("id") int id, @Param("newPwd") String newPwd);

  /**
   * like %username% 的用户名 以及其 role = role 两个可给可不, 比如 getUserCount(null,null)返回全部用户
   *
   * @return: userCount
   */
  int getUserCount(@Param("userName") String username, @Param("role") Integer role);

  /**
   * 通过用户名(like)和role查询用户列表,其中currentPageNo、pageSize用来指定范围,其中userName\role可null
   *
   * <p>即返回第 (currentPageNo-1) * pageSize + 1 ~ ... + pageSize 个用户记录
   *
   * @return: User List
   */
  List<User> getUserList(
      @Param("userName") String userName,
      @Param("role") Integer role,
      @Param("pageNo") int currentPageNo,
      @Param("pageSize") int pageSize);
}
